In a network in which packets are transmitted, bursty occurrence of a large amount of traffic at a terminal, streams of traffic merging at a relay node, and factors such as a communication speed of a relay line may produce traffic having a large transmission bandwidth or large burstiness (i.e., a large amount of data being burst-transferred). For traffic having an excessively large transmission bandwidth or the burstiness, the amount of packet data transferred in a certain period of time exceeds the processing capability of a transmission device that relays the packet data or a terminal that receives the packet data, thus causing a problem in that that some of the packets to be transmitted are discarded.
In order to inhibit occurrence of traffic having such an excessively large transmission bandwidth or burstiness, packet transmission devices (such as shapers) having bandwidth control functions have been available. For the bandwidth control, token control using tokens, which are pieces of information for determining whether or not outputting of packets is to be permitted, is widely used. In the token control, the tokens are used to perform control for limiting the transmission bandwidth or the size of burstiness of traffic to be transferred.
Even for streams of traffic to be output to the same physical line, there are cases in which the streams of traffic are classified into groups according to logical units, such as destination devices, user groups, or the like to perform bandwidth controls for the traffic groups. In such a case, the traffic groups are assigned corresponding queues, on which the bandwidth controls are performed respectively. A scheme using a method called Round Robin (RR) has been widely used to ultimately selecting, from multiple queues in which outputting of packets is permitted, a queue from which the packets are to be output.
FIG. 1 is a block diagram illustrating one example of the internal configuration of a packet transmission device having a bandwidth control function.
A packet buffer 106 has therein a data storage region, which is logically divided into multiple queues. In accordance with the traffic group to which a packet belongs, the packet buffer 106 stores the packet data in any of the multiple queues.
A queue manager 104 manages the queues in the packet buffer 106, determines whether or not packet data are stored in the queues, and outputs multiple queue-status signals on the basis of the results of the determinations.
A buffer read controller 102 includes a packet-data reader 108, a bandwidth controller 110, and a queue selector 112. Under the control of a token controller 114, the bandwidth controller 110 uses token counters 120 (120-1 to 120-n, n represents the number of queues) to add and accumulate, for each queue, tokens at a certain period in accordance with an added-token value stored in a token table 116. A maximum-value table 118 stores the maximum values (i.e., maximum token values) of the amounts of tokens that can be accumulated for the respective queues. The token controller 114 determines, for each queue, whether or not the amount of accumulated tokens (i.e., an accumulated-token value) is larger than or equal to a predetermined threshold (e.g., 0 (zero)). On the basis of the results of the determinations, the token controller 114 outputs token-status signals.
The queue selector 112 receives the queue-status signals from the queue manager 104 and also receives the token-status signals from the bandwidth controller 110. A status monitor 122 in the queue selector 112 determines, for each queue, whether or not it contains packets and is in a state in which the amount of accumulated tokens is larger than or equal to a predetermined threshold (i.e., is in a transmittable state), on the basis of the corresponding queue status signal and the corresponding token-status signal. On the basis of the result of the determination of the status monitor 122, a queue selection controller 124 selects, from the multiple queues, the queue in the transmittable state as a transmission source and generates identification information of the selected queue (selected-queue identification information).
The queue manager 104 receives the selected-queue identification information from the queue selection controller 124. On the basis of the received packet identification and packet information contained therein, the queue management section 104 generates read-address information of the selected queue.
The packet-data reader 108 receives the selected-queue read-address information from the queue manager 104. On the basis of the received selected-queue read-address information, the packet-data reader 108 reads the packet data from the selected queue in the packet buffer 106 and outputs the read packet data.
In addition to the method based on the token control, other bandwidth control methods are also available. For example, Japanese Laid-open Patent Publication No. 2009-182546 discloses a method in which an available bandwidth is calculated based on a maximum bandwidth, a minimum bandwidth, and a weighting for each queue and a transmission schedule time is further managed to determine from which queue packets allocated therein are to be transmitted with high priority. Japanese Laid-open Patent Publication No. 2005-123919 discloses a method in which a WFQ (weighted fair queuing) means for performing WFQ-type read control on non-priority-class traffic for each logical port and WRR (weighted round robin) means for performing WRR-type read control on traffic output from each WFQ means are provided. An SP (strict priority) type read control is performed on priority-class class output traffic from a priority queue and non-priority-class output traffic read under the WRR read control.
When the bandwidth controls are individually performed on the queues using the same physical line, there are cases in which, because of an insufficient amount of tokens accumulated for one queue, the packet transmission is not performed at timing at which packets can be transmitted. Consequently, the packet transmission is caused to wait until next transmission timing.
For example, at timing at which packets in one queue can be transmitted, when packet data of another queue is transmitted and this other queue occupies an entire transmission bandwidth of the physical line, no packet transmission from the queue is can be performed even when that queue is in the transmittable state. In particular, when the number of queues assigned to one physical line increases and a large number of bandwidth controls are individually performed on one physical line, the entire transmission bandwidth is used by the multiple queues to thereby increase the possibility of occurrence of an insufficient transmission bandwidth, which may cause any of the queues to wait for packet transmission multiple times.
In such a case, with respect to the queue caused to wait for the packet transmission, the amount of tokens accumulated increases, so that the amount of data burst-transferred during the packet transmission also increases. This causes a problem in that the amount of packet transmission fluctuation during the burst transfer (i.e., fluctuation in the amount of data burst-transferred during the packet transmission) increases.